package coba.calendar;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.liferay.portal.kernel.exception.SystemException;

import coba.model.Itinerario;
import coba.model.ItinerarioRecorrido;
import coba.model.Recorrido;
import coba.model.Solicitud;
import coba.service.ItinerarioLocalServiceUtil;

public class Concurrencia {

	public static Map<String, Long> get(List<Solicitud> listSolicitud, int anio, int mes, int dia,
			List<ItinerarioRecorrido> listItinerarioRecorrido) throws SystemException {

		Calendar cal = new GregorianCalendar(anio, mes, dia, 0, 0, 0);
		Date fecha = cal.getTime();
		
		Map<String, Long> mapConcurrencia = new HashMap<String, Long>();
		
		for (Solicitud solicitud : listSolicitud) {
			if (solicitud.getFechaItinerario() == null)
				continue;
			
			Calendar cal2 = GregorianCalendar.getInstance();
			cal2.setTime(solicitud.getFechaItinerario());

			if (cal2.get(Calendar.YEAR) == anio && cal2.get(Calendar.MONTH) == mes
					&& cal2.get(Calendar.DAY_OF_MONTH) == dia) {
				for (ItinerarioRecorrido itinerarioRecorrido : listItinerarioRecorrido) {
					if (solicitud.getItinerarioId() == itinerarioRecorrido.getItinerarioId()) {
						String key = String.valueOf(itinerarioRecorrido.getRecorridoId()) +
								"-" +
								String.valueOf(itinerarioRecorrido.getHora());
						
						mapConcurrencia.put(key,
								(mapConcurrencia.get(key) != null ?
								mapConcurrencia.get(key) + solicitud.getCantidadParticipantes() :
								solicitud.getCantidadParticipantes()));
					}
				}
			}
		}

		return mapConcurrencia;
		
	}

}
